

#include "test1.h"


// -----------------------------------------------------------------------------
void
tenacitas::balance_line::test1::
run( ) {
    f0( ) ;
}


// -----------------------------------------------------------------------------
void
tenacitas::balance_line::test1::
f0( ) {
    
    typedef source<int16_t> ints;

    ints::ptr l1, l2, l3, l4;

    // fill l1
    l1 = ints::ptr( new ints( "l1" ) );
    l1->add( 23 );
    l1->add( -34 );
    l1->add( 235 );
    l1->add( 6 );
    l1->sort( );
    l1->print( );
    
    // l2 will be left empty
    l2 = ints::ptr( new ints( "l2" ) );
    
    // fill l3
    l3 = ints::ptr( new ints( "l3" ) );
    l3->add( 90 );
    l3->add( 128 );
    l3->add( -219 );
    l3->add( 55 );
    l3->sort( );
    l3->print( );

    // // fill l4
    l4 = ints::ptr( new ints( "l4" ) );
    l4->add( -1235 );
    l4->add( 3456 );
    l4->sort( );
    l4->print( );

    // create the merger
    merger_all<ints, std::less<int16_t> >::ptr l_merger = merger_all<ints>::create( );

    l_merger->add( l1 );
    l_merger->add( l2 );
    l_merger->add( l3 );
    l_merger->add( l4 );

    ints l_output( "output" );
    l_merger->start( l_output );
    l_output.print( );

}


    
    
    
    



